\hypertarget{hspi_8c}{}\section{esp8266/hspi.c File Reference}
\label{hspi_8c}\index{esp8266/hspi.\+c@{esp8266/hspi.\+c}}


H\+S\+PI driver for E\+S\+P8255 Based on initial work from Sem 2015 -\/ rewrittem Added code to handle proper aligned reads and writes and buffering.  


{\ttfamily \#include \char`\"{}user\+\_\+config.\+h\char`\"{}}\\*
{\ttfamily \#include $<$stdint.\+h$>$}\\*
{\ttfamily \#include $<$stdarg.\+h$>$}\\*
{\ttfamily \#include $<$string.\+h$>$}\\*
{\ttfamily \#include $<$math.\+h$>$}\\*
{\ttfamily \#include \char`\"{}hspi.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}gpio.\+h\char`\"{}}\\*
\subsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \hyperlink{hspi_8c_ac0b594f74d77f8ac1ee56fd39fcfecdc}{H\+S\+P\+I\+\_\+\+P\+R\+E\+S\+C\+A\+L\+ER}~16
\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
void \hyperlink{hspi_8c_a75c90f17c5ded9cd0515d597533ac517}{hspi\+\_\+init} (\hyperlink{send_8c_a435d1572bf3f880d55459d9805097f62}{uint32\+\_\+t} prescale, int hwcs)
\begin{DoxyCompactList}\small\item\em H\+S\+PI Initiaization -\/ with automatic chip select Pins\+: M\+I\+SO G\+P\+I\+O12 M\+O\+SI G\+P\+I\+O13 C\+LK G\+P\+I\+O14 CS G\+P\+I\+O15 -\/ optional DC G\+P\+I\+O2. \end{DoxyCompactList}\item 
static void \hyperlink{hspi_8c_a34e8f95d18d9550c20576b48803d6785}{hspi\+\_\+config} (int config\+State)
\begin{DoxyCompactList}\small\item\em H\+S\+PI Configuration for tranasmit and receive. \end{DoxyCompactList}\item 
static void \hyperlink{hspi_8c_aa699c6593cc1ccd0e1b972bab7b527d9}{hspi\+\_\+set\+Bits} (\hyperlink{send_8c_a273cf69d639a59973b6019625df33e30}{uint16\+\_\+t} bytes)
\begin{DoxyCompactList}\small\item\em H\+S\+PI F\+I\+FO send or receive byte count. \end{DoxyCompactList}\item 
static void \hyperlink{hspi_8c_a16038c164ad4e103feeddafe6bdce825}{hspi\+\_\+start\+Send} (void)
\begin{DoxyCompactList}\small\item\em H\+S\+PI Start Send. \end{DoxyCompactList}\item 
void \hyperlink{hspi_8c_af1a0f7a7dd3cac5dd6b8489f7ff308dc}{hspi\+\_\+wait\+Ready} (void)
\begin{DoxyCompactList}\small\item\em H\+S\+PI Ready wait. \end{DoxyCompactList}\item 
static void \hyperlink{hspi_8c_afc6137e3acc101f92a9502ad207f0b4d}{hspi\+\_\+write\+F\+I\+FO} (\hyperlink{send_8c_aba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t} $\ast$write\+\_\+data, int bytes)
\begin{DoxyCompactList}\small\item\em H\+S\+PI F\+I\+FO write in units of 32 bits (4 byte words) \end{DoxyCompactList}\item 
static void \hyperlink{hspi_8c_a50884c24ab0b495b0c0112547ecde051}{hspi\+\_\+read\+F\+I\+FO} (\hyperlink{send_8c_aba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t} $\ast$read\+\_\+data, int bytes)
\begin{DoxyCompactList}\small\item\em H\+S\+PI F\+I\+FO Read in units of 32 bits (4 byte words) \end{DoxyCompactList}\item 
void \hyperlink{hspi_8c_a95e93b2eb7fb8bd8548f2ad9022aac58}{hspi\+\_\+\+TX} (\hyperlink{send_8c_aba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t} $\ast$data, int count)
\begin{DoxyCompactList}\small\item\em S\+PI buffered write functions. \end{DoxyCompactList}\item 
void \hyperlink{hspi_8c_a1ea1bd90994ac123b4c62bfa511b6972}{hspi\+\_\+\+T\+X\+RX} (\hyperlink{send_8c_aba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t} $\ast$data, int count)
\begin{DoxyCompactList}\small\item\em H\+S\+PI write and read using F\+I\+FO. \end{DoxyCompactList}\item 
void \hyperlink{hspi_8c_a0603c3e5a8c6c29e5deb5609b28e86bc}{hspi\+\_\+\+RX} (\hyperlink{send_8c_aba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t} $\ast$data, int count)
\begin{DoxyCompactList}\small\item\em H\+S\+PI read using F\+I\+FO. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Variables}
\begin{DoxyCompactItemize}
\item 
static \hyperlink{hspi_8c_a9d8a27ff6d91c4aa89e8719b960d7404}{\+\_\+hspi\+\_\+init\+\_\+done} = 0
\item 
\hyperlink{send_8c_a435d1572bf3f880d55459d9805097f62}{uint32\+\_\+t} \hyperlink{hspi_8c_a13f392bc0f33d99955c2d8ef84f0c583}{hspi\+\_\+clock} = -\/1
\begin{DoxyCompactList}\small\item\em hspi clock cached value \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
H\+S\+PI driver for E\+S\+P8255 Based on initial work from Sem 2015 -\/ rewrittem Added code to handle proper aligned reads and writes and buffering. 

\begin{DoxyParagraph}{Copyright \copyright{} 2015 Sem}

\end{DoxyParagraph}
\begin{DoxyParagraph}{Copyright \copyright{} 2015 Mike Gore, G\+PL License}

\end{DoxyParagraph}
\begin{DoxyParagraph}{You are free to use this code under the terms of G\+PL}
Please retain a copy of this notice in any code you use it in.
\end{DoxyParagraph}
This is free software\+: you can redistribute it and/or modify it under the terms of the G\+NU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This software is distributed in the hope that it will be useful, but W\+I\+T\+H\+O\+UT A\+NY W\+A\+R\+R\+A\+N\+TY; without even the implied warranty of M\+E\+R\+C\+H\+A\+N\+T\+A\+B\+I\+L\+I\+TY or F\+I\+T\+N\+E\+SS F\+OR A P\+A\+R\+T\+I\+C\+U\+L\+AR P\+U\+R\+P\+O\+SE. See the G\+NU General Public License for more details.

You should have received a copy of the G\+NU General Public License along with this program. If not, see \href{http://www.gnu.org/licenses/}{\tt http\+://www.\+gnu.\+org/licenses/}. 

\subsection{Macro Definition Documentation}
\index{hspi.\+c@{hspi.\+c}!H\+S\+P\+I\+\_\+\+P\+R\+E\+S\+C\+A\+L\+ER@{H\+S\+P\+I\+\_\+\+P\+R\+E\+S\+C\+A\+L\+ER}}
\index{H\+S\+P\+I\+\_\+\+P\+R\+E\+S\+C\+A\+L\+ER@{H\+S\+P\+I\+\_\+\+P\+R\+E\+S\+C\+A\+L\+ER}!hspi.\+c@{hspi.\+c}}
\subsubsection[{\texorpdfstring{H\+S\+P\+I\+\_\+\+P\+R\+E\+S\+C\+A\+L\+ER}{HSPI_PRESCALER}}]{\setlength{\rightskip}{0pt plus 5cm}\#define H\+S\+P\+I\+\_\+\+P\+R\+E\+S\+C\+A\+L\+ER~16}\hypertarget{hspi_8c_ac0b594f74d77f8ac1ee56fd39fcfecdc}{}\label{hspi_8c_ac0b594f74d77f8ac1ee56fd39fcfecdc}


Definition at line 37 of file hspi.\+c.



\subsection{Function Documentation}
\index{hspi.\+c@{hspi.\+c}!hspi\+\_\+config@{hspi\+\_\+config}}
\index{hspi\+\_\+config@{hspi\+\_\+config}!hspi.\+c@{hspi.\+c}}
\subsubsection[{\texorpdfstring{hspi\+\_\+config(int config\+State)}{hspi_config(int configState)}}]{\setlength{\rightskip}{0pt plus 5cm}static void hspi\+\_\+config (
\begin{DoxyParamCaption}
\item[{int}]{config\+State}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [static]}}\hypertarget{hspi_8c_a34e8f95d18d9550c20576b48803d6785}{}\label{hspi_8c_a34e8f95d18d9550c20576b48803d6785}


H\+S\+PI Configuration for tranasmit and receive. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em config\+State} & C\+O\+N\+F\+I\+G\+\_\+\+F\+O\+R\+\_\+\+R\+X\+\_\+\+TX or C\+O\+N\+F\+I\+G\+\_\+\+F\+O\+R\+\_\+\+RX \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
void 
\end{DoxyReturn}


Definition at line 104 of file hspi.\+c.



Referenced by hspi\+\_\+\+R\+X(), hspi\+\_\+\+T\+X(), and hspi\+\_\+\+T\+X\+R\+X().

\index{hspi.\+c@{hspi.\+c}!hspi\+\_\+init@{hspi\+\_\+init}}
\index{hspi\+\_\+init@{hspi\+\_\+init}!hspi.\+c@{hspi.\+c}}
\subsubsection[{\texorpdfstring{hspi\+\_\+init(uint32\+\_\+t prescale, int hwcs)}{hspi_init(uint32_t prescale, int hwcs)}}]{\setlength{\rightskip}{0pt plus 5cm}void hspi\+\_\+init (
\begin{DoxyParamCaption}
\item[{{\bf uint32\+\_\+t}}]{prescale, }
\item[{int}]{hwcs}
\end{DoxyParamCaption}
)}\hypertarget{hspi_8c_a75c90f17c5ded9cd0515d597533ac517}{}\label{hspi_8c_a75c90f17c5ded9cd0515d597533ac517}


H\+S\+PI Initiaization -\/ with automatic chip select Pins\+: M\+I\+SO G\+P\+I\+O12 M\+O\+SI G\+P\+I\+O13 C\+LK G\+P\+I\+O14 CS G\+P\+I\+O15 -\/ optional DC G\+P\+I\+O2. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em prescale} & prescale from C\+PU clock 0 .. 0x1fff \\
\hline
\mbox{\tt in}  & {\em hwcs} & enable G\+P\+I\+O15 hardware chip select \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
void 
\end{DoxyReturn}


Definition at line 55 of file hspi.\+c.



Referenced by setup(), and spi\+\_\+init().

\index{hspi.\+c@{hspi.\+c}!hspi\+\_\+read\+F\+I\+FO@{hspi\+\_\+read\+F\+I\+FO}}
\index{hspi\+\_\+read\+F\+I\+FO@{hspi\+\_\+read\+F\+I\+FO}!hspi.\+c@{hspi.\+c}}
\subsubsection[{\texorpdfstring{hspi\+\_\+read\+F\+I\+F\+O(uint8\+\_\+t $\ast$read\+\_\+data, int bytes)}{hspi_readFIFO(uint8_t *read_data, int bytes)}}]{\setlength{\rightskip}{0pt plus 5cm}static void hspi\+\_\+read\+F\+I\+FO (
\begin{DoxyParamCaption}
\item[{{\bf uint8\+\_\+t} $\ast$}]{read\+\_\+data, }
\item[{int}]{bytes}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [static]}}\hypertarget{hspi_8c_a50884c24ab0b495b0c0112547ecde051}{}\label{hspi_8c_a50884c24ab0b495b0c0112547ecde051}


H\+S\+PI F\+I\+FO Read in units of 32 bits (4 byte words) 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em read\+\_\+data} & read buffer \\
\hline
\mbox{\tt in}  & {\em bytes} & bytes to write \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
void 
\end{DoxyReturn}


Definition at line 215 of file hspi.\+c.



Referenced by hspi\+\_\+\+R\+X(), and hspi\+\_\+\+T\+X\+R\+X().

\index{hspi.\+c@{hspi.\+c}!hspi\+\_\+\+RX@{hspi\+\_\+\+RX}}
\index{hspi\+\_\+\+RX@{hspi\+\_\+\+RX}!hspi.\+c@{hspi.\+c}}
\subsubsection[{\texorpdfstring{hspi\+\_\+\+R\+X(uint8\+\_\+t $\ast$data, int count)}{hspi_RX(uint8_t *data, int count)}}]{\setlength{\rightskip}{0pt plus 5cm}void hspi\+\_\+\+RX (
\begin{DoxyParamCaption}
\item[{{\bf uint8\+\_\+t} $\ast$}]{data, }
\item[{int}]{count}
\end{DoxyParamCaption}
)}\hypertarget{hspi_8c_a0603c3e5a8c6c29e5deb5609b28e86bc}{}\label{hspi_8c_a0603c3e5a8c6c29e5deb5609b28e86bc}


H\+S\+PI read using F\+I\+FO. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em $\ast$data} & receive buffer \\
\hline
\mbox{\tt in}  & {\em count} & number of bytes to read \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
void 
\end{DoxyReturn}


Definition at line 318 of file hspi.\+c.



Referenced by spi\+\_\+\+R\+X(), and spi\+\_\+\+R\+X\+\_\+buffer().

\index{hspi.\+c@{hspi.\+c}!hspi\+\_\+set\+Bits@{hspi\+\_\+set\+Bits}}
\index{hspi\+\_\+set\+Bits@{hspi\+\_\+set\+Bits}!hspi.\+c@{hspi.\+c}}
\subsubsection[{\texorpdfstring{hspi\+\_\+set\+Bits(uint16\+\_\+t bytes)}{hspi_setBits(uint16_t bytes)}}]{\setlength{\rightskip}{0pt plus 5cm}static void hspi\+\_\+set\+Bits (
\begin{DoxyParamCaption}
\item[{{\bf uint16\+\_\+t}}]{bytes}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [static]}}\hypertarget{hspi_8c_aa699c6593cc1ccd0e1b972bab7b527d9}{}\label{hspi_8c_aa699c6593cc1ccd0e1b972bab7b527d9}


H\+S\+PI F\+I\+FO send or receive byte count. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em bytes} & bytes to send or receive \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
void 
\end{DoxyReturn}


Definition at line 140 of file hspi.\+c.



Referenced by hspi\+\_\+read\+F\+I\+F\+O(), and hspi\+\_\+write\+F\+I\+F\+O().

\index{hspi.\+c@{hspi.\+c}!hspi\+\_\+start\+Send@{hspi\+\_\+start\+Send}}
\index{hspi\+\_\+start\+Send@{hspi\+\_\+start\+Send}!hspi.\+c@{hspi.\+c}}
\subsubsection[{\texorpdfstring{hspi\+\_\+start\+Send(void)}{hspi_startSend(void)}}]{\setlength{\rightskip}{0pt plus 5cm}static void hspi\+\_\+start\+Send (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [static]}}\hypertarget{hspi_8c_a16038c164ad4e103feeddafe6bdce825}{}\label{hspi_8c_a16038c164ad4e103feeddafe6bdce825}


H\+S\+PI Start Send. 

\begin{DoxyReturn}{Returns}
void 
\end{DoxyReturn}


Definition at line 151 of file hspi.\+c.



Referenced by hspi\+\_\+\+R\+X(), hspi\+\_\+\+T\+X(), and hspi\+\_\+\+T\+X\+R\+X().

\index{hspi.\+c@{hspi.\+c}!hspi\+\_\+\+TX@{hspi\+\_\+\+TX}}
\index{hspi\+\_\+\+TX@{hspi\+\_\+\+TX}!hspi.\+c@{hspi.\+c}}
\subsubsection[{\texorpdfstring{hspi\+\_\+\+T\+X(uint8\+\_\+t $\ast$data, int count)}{hspi_TX(uint8_t *data, int count)}}]{\setlength{\rightskip}{0pt plus 5cm}void hspi\+\_\+\+TX (
\begin{DoxyParamCaption}
\item[{{\bf uint8\+\_\+t} $\ast$}]{data, }
\item[{int}]{count}
\end{DoxyParamCaption}
)}\hypertarget{hspi_8c_a95e93b2eb7fb8bd8548f2ad9022aac58}{}\label{hspi_8c_a95e93b2eb7fb8bd8548f2ad9022aac58}


S\+PI buffered write functions. 

=================================================================H\+S\+PI write using F\+I\+FO 
\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em $\ast$data} & transmit buffer \\
\hline
\mbox{\tt in}  & {\em count} & number of bytes to write \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
void 
\end{DoxyReturn}


Definition at line 265 of file hspi.\+c.



Referenced by spi\+\_\+\+T\+X(), and spi\+\_\+\+T\+X\+\_\+buffer().

\index{hspi.\+c@{hspi.\+c}!hspi\+\_\+\+T\+X\+RX@{hspi\+\_\+\+T\+X\+RX}}
\index{hspi\+\_\+\+T\+X\+RX@{hspi\+\_\+\+T\+X\+RX}!hspi.\+c@{hspi.\+c}}
\subsubsection[{\texorpdfstring{hspi\+\_\+\+T\+X\+R\+X(uint8\+\_\+t $\ast$data, int count)}{hspi_TXRX(uint8_t *data, int count)}}]{\setlength{\rightskip}{0pt plus 5cm}void hspi\+\_\+\+T\+X\+RX (
\begin{DoxyParamCaption}
\item[{{\bf uint8\+\_\+t} $\ast$}]{data, }
\item[{int}]{count}
\end{DoxyParamCaption}
)}\hypertarget{hspi_8c_a1ea1bd90994ac123b4c62bfa511b6972}{}\label{hspi_8c_a1ea1bd90994ac123b4c62bfa511b6972}


H\+S\+PI write and read using F\+I\+FO. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em $\ast$data} & transmit / receive buffer \\
\hline
\mbox{\tt in}  & {\em count} & number of bytes to write / read \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
void 
\end{DoxyReturn}


Definition at line 292 of file hspi.\+c.



Referenced by spi\+\_\+\+T\+X\+R\+X(), and spi\+\_\+\+T\+X\+R\+X\+\_\+buffer().

\index{hspi.\+c@{hspi.\+c}!hspi\+\_\+wait\+Ready@{hspi\+\_\+wait\+Ready}}
\index{hspi\+\_\+wait\+Ready@{hspi\+\_\+wait\+Ready}!hspi.\+c@{hspi.\+c}}
\subsubsection[{\texorpdfstring{hspi\+\_\+wait\+Ready(void)}{hspi_waitReady(void)}}]{\setlength{\rightskip}{0pt plus 5cm}void hspi\+\_\+wait\+Ready (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
)}\hypertarget{hspi_8c_af1a0f7a7dd3cac5dd6b8489f7ff308dc}{}\label{hspi_8c_af1a0f7a7dd3cac5dd6b8489f7ff308dc}


H\+S\+PI Ready wait. 

\begin{DoxyReturn}{Returns}
void 
\end{DoxyReturn}


Definition at line 159 of file hspi.\+c.



Referenced by esp\+\_\+yield(), hspi\+\_\+config(), hspi\+\_\+init(), hspi\+\_\+\+R\+X(), hspi\+\_\+\+T\+X(), hspi\+\_\+\+T\+X\+R\+X(), loop\+\_\+wrapper(), and spi\+\_\+wait\+Ready().

\index{hspi.\+c@{hspi.\+c}!hspi\+\_\+write\+F\+I\+FO@{hspi\+\_\+write\+F\+I\+FO}}
\index{hspi\+\_\+write\+F\+I\+FO@{hspi\+\_\+write\+F\+I\+FO}!hspi.\+c@{hspi.\+c}}
\subsubsection[{\texorpdfstring{hspi\+\_\+write\+F\+I\+F\+O(uint8\+\_\+t $\ast$write\+\_\+data, int bytes)}{hspi_writeFIFO(uint8_t *write_data, int bytes)}}]{\setlength{\rightskip}{0pt plus 5cm}static void hspi\+\_\+write\+F\+I\+FO (
\begin{DoxyParamCaption}
\item[{{\bf uint8\+\_\+t} $\ast$}]{write\+\_\+data, }
\item[{int}]{bytes}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [static]}}\hypertarget{hspi_8c_afc6137e3acc101f92a9502ad207f0b4d}{}\label{hspi_8c_afc6137e3acc101f92a9502ad207f0b4d}


H\+S\+PI F\+I\+FO write in units of 32 bits (4 byte words) 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em write\+\_\+data} & write buffer \\
\hline
\mbox{\tt in}  & {\em bytes} & bytes to write \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
void 
\end{DoxyReturn}


Definition at line 169 of file hspi.\+c.



Referenced by hspi\+\_\+\+R\+X(), hspi\+\_\+\+T\+X(), and hspi\+\_\+\+T\+X\+R\+X().



\subsection{Variable Documentation}
\index{hspi.\+c@{hspi.\+c}!\+\_\+hspi\+\_\+init\+\_\+done@{\+\_\+hspi\+\_\+init\+\_\+done}}
\index{\+\_\+hspi\+\_\+init\+\_\+done@{\+\_\+hspi\+\_\+init\+\_\+done}!hspi.\+c@{hspi.\+c}}
\subsubsection[{\texorpdfstring{\+\_\+hspi\+\_\+init\+\_\+done}{_hspi_init_done}}]{\setlength{\rightskip}{0pt plus 5cm}\+\_\+hspi\+\_\+init\+\_\+done = 0\hspace{0.3cm}{\ttfamily [static]}}\hypertarget{hspi_8c_a9d8a27ff6d91c4aa89e8719b960d7404}{}\label{hspi_8c_a9d8a27ff6d91c4aa89e8719b960d7404}


Definition at line 41 of file hspi.\+c.



Referenced by hspi\+\_\+init().

\index{hspi.\+c@{hspi.\+c}!hspi\+\_\+clock@{hspi\+\_\+clock}}
\index{hspi\+\_\+clock@{hspi\+\_\+clock}!hspi.\+c@{hspi.\+c}}
\subsubsection[{\texorpdfstring{hspi\+\_\+clock}{hspi_clock}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf uint32\+\_\+t} hspi\+\_\+clock = -\/1}\hypertarget{hspi_8c_a13f392bc0f33d99955c2d8ef84f0c583}{}\label{hspi_8c_a13f392bc0f33d99955c2d8ef84f0c583}


hspi clock cached value 



Definition at line 44 of file hspi.\+c.



Referenced by hspi\+\_\+init().

